Corruption Help

Finally got some real corruption; one of our huge shared module lost an entire sub-section. Don't know what to do. Have found the m00xxxx.mod folder housing the module and am getting that from backup tape, depositing in in the temp directory.

I see no such *.dtn files. No other module linked to this module today. I've not done this before.

If I don't care about edits this morning, can I simply replace the entire module's folder hierarchy and all is well? Just the /currentVersion sub-folder?

Can I create a new empty module, then replace its database contents with the backup of the huge one, then do some clever exporting and importing?

-Louie
llandale - Tue Dec 20 12:13:37 EST 2011

Re: Corruption Help
smarti.sj - Tue Dec 20 14:41:56 EST 2011

Hi Louie,

I have seen this problem before - but not for a long time - v7.1 maybe?? I would be interested in knowing if you think that you can replicate it.

Anyway, first I would use a copy/archive of the project to do any and all testing before you actually try the recover on the real module. I'm sure that you know that you will have to rerun the script to get the module id of the replicated module. Document thouroughly your instuctions/paths so that you can replicate it on the real module. This is very important if you have to have an Admin do the work and will help take some pressure off. Also, if at all possible be sure that you have file access to your test area so that you can actually see the effects of you changes and you can also compare the corrupt module structure to healthy modules. So for me that means a local window server install - since we do not have access rights to the production servers.

Instead of creating a new m##.mod folder I would rename the old and plop the backup folder copy into the proper parent folder. A strict m####.mod replace should do the trick but it may not - if not let me know and I will pour through my notes.

Good Luck My Son
Sara

Re: Corruption Help
SudarshanRao - Tue Dec 20 15:24:18 EST 2011

Hi Louie,

Not quite clear on the specifics of your problem, but here are my initial thoughts:

If the module is in open-able state, then do you see the history of the lost data (object created/edited etc) and just don't see any record of deletion? If that's the case, you may want to try using "Check data against history" option (available only when logged in as administrator), to correct the problem. Maybe you can try this on a restored copy of the module. Note, the option is available only from 8.3 (last patch, I think) and above.

Replacing current.ver from backup should be fine, as long as users haven't created or removed links during the time after the backup was taken (else it may cause dangling links). You'd have to get the full .mod folder if there were baseline or views created after the last backup.

Exporting/Importing will not get you the original absolute numbers.

Hope that helps.

Sudarshan

Re: Corruption Help
llandale - Tue Dec 20 16:41:23 EST 2011

Not sure what I "should" have done, this is what I did.
  • Got the \m00xxx.mod folder from backup, copied to my test client
  • Created a new module in my test database, got its id.
  • turned off the test service, erased the contents of the new mdoule folder and replaced with the huge contents of the restored folder.
  • turned on the test service
  • logged in as Administrator. Ran integrity check, resolved the "conflicting parent reference" or whatever the error was.
  • opened module Exclusive, erased all shared sections; in fact made everything inherited (got a program for that).
  • Close. Archived.
  • Restored in production database.
  • used Copy Objects tool to insert the lost objects.

Not sure we've found all the objects from the corruption however.

I think server version 9304 and 9405 are causing corruption; I see v9306 says it fixed it.

-Louie

Re: Corruption Help
SystemAdmin - Wed Jan 18 13:47:40 EST 2012

llandale - Tue Dec 20 16:41:23 EST 2011
Not sure what I "should" have done, this is what I did.

  • Got the \m00xxx.mod folder from backup, copied to my test client
  • Created a new module in my test database, got its id.
  • turned off the test service, erased the contents of the new mdoule folder and replaced with the huge contents of the restored folder.
  • turned on the test service
  • logged in as Administrator. Ran integrity check, resolved the "conflicting parent reference" or whatever the error was.
  • opened module Exclusive, erased all shared sections; in fact made everything inherited (got a program for that).
  • Close. Archived.
  • Restored in production database.
  • used Copy Objects tool to insert the lost objects.

Not sure we've found all the objects from the corruption however.

I think server version 9304 and 9405 are causing corruption; I see v9306 says it fixed it.

-Louie

Louie,

That looks like the process we've had to use on several occasions. I can confirm that we saw this type of issue with 9.3.0.3 and 9.3.0.5 versions of the server with a number of 9.2 and 9.3 clients. 9.3.0.6 server does indeed seem to fix it (or at least we've seen no new issues that happend since we brought all of ours up to that version - still finding ones that were hosed up on the old one and just not reported until now).